# -*- coding:utf-8 -*-
# @FileName : app\services\model_factory.py
# @Time     : 2025/11/28
# @Author   : 天空之城
"""模型工厂模块

此模块提供一个模型工厂类，用于统一管理和创建不同类型的模型实例。
"""
from typing import Dict, Any, Optional
from app.services.models import BaseModel, DeepSeekModel, MoDaModel, YuanjingModel


class ModelFactory:
    """模型工厂类，用于创建不同类型的模型实例"""
    
    # 支持的模型类型映射
    _model_classes = {
        "deepseek": DeepSeekModel,
        "moda": MoDaModel,
        "yuanjing": YuanjingModel
    }
    
    @classmethod
    def create_model(
        cls, 
        model_type: str, 
        **kwargs
    ) -> BaseModel:
        """
        创建模型实例
        
        Args:
            model_type: 模型类型，支持"deepseek"、"moda"、"yuanjing"
            **kwargs: 模型初始化参数
            
        Returns:
            模型实例
            
        Raises:
            ValueError: 不支持的模型类型
        """
        if model_type not in cls._model_classes:
            raise ValueError(f"不支持的模型类型: {model_type}")
        
        model_class = cls._model_classes[model_type]
        return model_class(**kwargs)
    
    @classmethod
    def get_supported_models(cls) -> Dict[str, Any]:
        """
        获取支持的模型列表
        
        Returns:
            支持的模型类型及其类的映射
        """
        return cls._model_classes.copy()